package cn.yx.common.core.util.bean;

import cn.hutool.core.util.StrUtil;
import cn.yx.common.core.util.RandomUtil;

/**
 * <p>Java属性工具类</p>
 *
 * @author Wgssmart
 */
public final class PropertyUtil {

    public static final String GETTER_PREFIX = "get";
    public static final String SETTER_PREFIX = "set";

    private PropertyUtil() {
    }

    /**
     * 获取属性的getter方法名称
     *
     * @param property 属性名
     * @return getter方法名
     */
    public static String getter(String property) {
        return StrUtil.upperFirstAndAddPre(property, GETTER_PREFIX);
    }

    /**
     * 获取属性的setter方法名称
     *
     * @param property 属性名
     * @return setter方法名
     */
    public static String setter(String property) {
        return StrUtil.upperFirstAndAddPre(property, SETTER_PREFIX);
    }

    /**
     * 产生serialVersionUID
     *
     * @return serialVersionUID
     */
    public static Long serialVersionUid() {
        return Long.MIN_VALUE + RandomUtil.randomInt(0, Integer.MAX_VALUE);
    }

}